-
Notifications
You must be signed in to change notification settings - Fork 464
feat(api-security): use simplified endpoint for API Security Sampling when route is missing #14960
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat(api-security): use simplified endpoint for API Security Sampling when route is missing #14960
Conversation
|
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 206 ± 2 ms. The average import time from base is: 207 ± 2 ms. The import time difference between this PR and base is: -1.49 ± 0.09 ms. Import time breakdownThe following import paths have shrunk:
|
eac77f9 to
3d19b7e
Compare
Performance SLOsComparing candidate florentin.labelle/APPSEC-59702/api-sampler-on-missing-route (effcd4f) with baseline main (8b7fe13) 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.432ms (SLO: <22.300ms -8.4%) vs baseline: ~same Memory: ✅ 65.149MB (SLO: <67.000MB -2.8%) vs baseline: +4.7% ✅ exception-replay-enabledTime: ✅ 1.341ms (SLO: <1.450ms -7.6%) vs baseline: +0.1% Memory: ✅ 64.634MB (SLO: <67.000MB -3.5%) vs baseline: +4.8% ✅ iastTime: ✅ 20.441ms (SLO: <22.250ms -8.1%) vs baseline: ~same Memory: ✅ 65.234MB (SLO: <67.000MB -2.6%) vs baseline: +5.0% ✅ profilerTime: ✅ 15.180ms (SLO: <16.550ms -8.3%) vs baseline: -0.4% Memory: ✅ 53.805MB (SLO: <54.500MB 🟡 -1.3%) vs baseline: +4.7% ✅ resource-renamingTime: ✅ 20.534ms (SLO: <21.750ms -5.6%) vs baseline: +0.6% Memory: ✅ 65.263MB (SLO: <67.000MB -2.6%) vs baseline: +5.0% ✅ span-code-originTime: ✅ 25.075ms (SLO: <28.200ms 📉 -11.1%) vs baseline: -1.0% Memory: ✅ 67.509MB (SLO: <69.500MB -2.9%) vs baseline: +4.9% ✅ tracerTime: ✅ 20.441ms (SLO: <21.750ms -6.0%) vs baseline: +0.2% Memory: ✅ 65.105MB (SLO: <67.000MB -2.8%) vs baseline: +4.7% ✅ tracer-and-profilerTime: ✅ 22.030ms (SLO: <23.500ms -6.3%) vs baseline: -0.1% Memory: ✅ 66.728MB (SLO: <67.500MB 🟡 -1.1%) vs baseline: +4.9% ✅ tracer-dont-create-db-spansTime: ✅ 19.307ms (SLO: <21.500ms 📉 -10.2%) vs baseline: +0.2% Memory: ✅ 65.212MB (SLO: <66.000MB 🟡 -1.2%) vs baseline: +4.9% ✅ tracer-minimalTime: ✅ 16.665ms (SLO: <17.500ms -4.8%) vs baseline: +0.7% Memory: ✅ 65.134MB (SLO: <66.000MB 🟡 -1.3%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 20.455ms (SLO: <21.750ms -6.0%) vs baseline: -0.1% Memory: ✅ 71.034MB (SLO: <72.500MB -2.0%) vs baseline: +4.9% ✅ tracer-no-cachesTime: ✅ 18.475ms (SLO: <19.650ms -6.0%) vs baseline: +0.5% Memory: ✅ 65.209MB (SLO: <67.000MB -2.7%) vs baseline: +4.8% ✅ tracer-no-databasesTime: ✅ 18.765ms (SLO: <20.100ms -6.6%) vs baseline: +0.1% Memory: ✅ 65.151MB (SLO: <67.000MB -2.8%) vs baseline: +4.8% ✅ tracer-no-middlewareTime: ✅ 20.138ms (SLO: <21.500ms -6.3%) vs baseline: ~same Memory: ✅ 65.232MB (SLO: <67.000MB -2.6%) vs baseline: +4.9% ✅ tracer-no-templatesTime: ✅ 20.300ms (SLO: <22.000ms -7.7%) vs baseline: +0.4% Memory: ✅ 65.274MB (SLO: <67.000MB -2.6%) vs baseline: +5.0% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.034ms (SLO: <19.850ms -9.1%) vs baseline: -0.1% Memory: ✅ 65.186MB (SLO: <66.500MB 🟡 -2.0%) vs baseline: +4.8% ✅ errortracking-enabled-userTime: ✅ 18.059ms (SLO: <19.400ms -6.9%) vs baseline: +0.1% Memory: ✅ 65.123MB (SLO: <66.500MB -2.1%) vs baseline: +4.7% ✅ tracer-enabledTime: ✅ 18.043ms (SLO: <19.450ms -7.2%) vs baseline: +0.1% Memory: ✅ 65.266MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +5.0% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.571ms (SLO: <4.750ms -3.8%) vs baseline: -0.2% Memory: ✅ 62.049MB (SLO: <65.000MB -4.5%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 6.614ms (SLO: <6.750ms -2.0%) vs baseline: +0.4% Memory: ✅ 62.049MB (SLO: <65.000MB -4.5%) vs baseline: +5.1% ✅ appsec-telemetryTime: ✅ 4.570ms (SLO: <4.750ms -3.8%) vs baseline: -0.6% Memory: ✅ 61.971MB (SLO: <65.000MB -4.7%) vs baseline: +4.7% ✅ debuggerTime: ✅ 1.854ms (SLO: <2.000ms -7.3%) vs baseline: +0.4% Memory: ✅ 45.456MB (SLO: <47.000MB -3.3%) vs baseline: +4.8% ✅ iast-getTime: ✅ 1.859ms (SLO: <2.000ms -7.1%) vs baseline: -0.2% Memory: ✅ 42.369MB (SLO: <49.000MB 📉 -13.5%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.913ms (SLO: <2.100ms -8.9%) vs baseline: ~same Memory: ✅ 46.498MB (SLO: <47.000MB 🟡 -1.1%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.361ms (SLO: <3.650ms -7.9%) vs baseline: -0.3% Memory: ✅ 52.239MB (SLO: <53.500MB -2.4%) vs baseline: +4.9% ✅ tracerTime: ✅ 3.348ms (SLO: <3.650ms -8.3%) vs baseline: ~same Memory: ✅ 52.180MB (SLO: <53.500MB -2.5%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 3.360ms (SLO: <3.650ms -7.9%) vs baseline: +0.2% Memory: ✅ 58.285MB (SLO: <60.000MB -2.9%) vs baseline: +4.9% 🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 2.957µs (SLO: <20.000µs 📉 -85.2%) vs baseline: +1.7% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ 1-count-metrics-100-timesTime: ✅ 203.735µs (SLO: <220.000µs -7.4%) vs baseline: +1.1% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.9% ✅ 1-distribution-metric-1-timesTime: ✅ 3.303µs (SLO: <20.000µs 📉 -83.5%) vs baseline: +0.4% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.6% ✅ 1-distribution-metrics-100-timesTime: ✅ 216.148µs (SLO: <220.000µs 🟡 -1.8%) vs baseline: +0.8% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.7% ✅ 1-gauge-metric-1-timesTime: ✅ 2.176µs (SLO: <20.000µs 📉 -89.1%) vs baseline: -0.4% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.9% ✅ 1-gauge-metrics-100-timesTime: ✅ 136.666µs (SLO: <150.000µs -8.9%) vs baseline: ~same Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-rate-metric-1-timesTime: ✅ 3.059µs (SLO: <20.000µs 📉 -84.7%) vs baseline: +0.1% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.8% ✅ 1-rate-metrics-100-timesTime: ✅ 215.575µs (SLO: <250.000µs 📉 -13.8%) vs baseline: +0.3% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.9% ✅ 100-count-metrics-100-timesTime: ✅ 20.621ms (SLO: <22.000ms -6.3%) vs baseline: +1.9% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.288ms (SLO: <2.300ms 🟡 -0.5%) vs baseline: +2.1% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.9% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.413ms (SLO: <1.550ms -8.8%) vs baseline: +0.8% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.0% ✅ 100-rate-metrics-100-timesTime: ✅ 2.228ms (SLO: <2.550ms 📉 -12.6%) vs baseline: +2.0% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.8% ✅ flush-1-metricTime: ✅ 4.519µs (SLO: <20.000µs 📉 -77.4%) vs baseline: +1.3% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ flush-100-metricsTime: ✅ 175.302µs (SLO: <250.000µs 📉 -29.9%) vs baseline: +0.6% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ flush-1000-metricsTime: ✅ 2.115ms (SLO: <2.500ms 📉 -15.4%) vs baseline: ~same Memory: ✅ 32.932MB (SLO: <34.500MB -4.5%) vs baseline: +5.2%
|
3d19b7e to
4429da3
Compare
effcd4f to
b408353
Compare
… when route is missing
b408353 to
d337136
Compare
Description
In some instrumented setups, the REQUEST_ROUTE waf address might not be available. This is the case with:
To still compute and tag API Schemas in this case, we can sample using the simplified endpoint computed by trace resource renaming or compute it if trace resource renaming is disabled.
Testing
Risks
Additional Notes